package com.winsdom.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 缴费记录表
 * </p>
 *
 * @author 
 * @since 2025-05-12
 */
@Data
@Accessors(chain = true)
@TableName("payment_record")
public class PaymentRecord implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 客户名称（如：马云）
     */
    private String customerName;

    /**
     * 计费项目（如水费、电费）
     */
    private String billingItem;

    /**
     * 计费性质（如三表费用）
     */
    private String billingType;

    /**
     * 单价
     */
    private BigDecimal unitPrice;

    /**
     * 计费日期起
     */
    private LocalDate billingStartDate;

    /**
     * 计费日期止
     */
    private LocalDate billingEndDate;

    /**
     * 应收金额
     */
    private BigDecimal totalAmount;

    /**
     * 账期（如2024-04）
     */
    private String billingCycle;

    /**
     * 账单编号（如202405010121）
     */
    private String billNo;

    /**
     * 欠款金额
     */
    private BigDecimal owedAmount;

    /**
     * 状态（0=未付，1=部分支付，2=已结清）
     */
    private Integer paymentStatus;

    /**
     * 记录创建时间
     */
    private LocalDateTime createTime;


    /**
     * 客户ID
     */
    private Long customerId;

    private Customer customer;  // 对应 <association property="customer">
    private CustomerNotificationConfig customerNotificationConfig;  // 对应 <association property="customerNotificationConfig">



}
